1. Field of the Invention
This invention relates to data backup software for computer systems. More particularly, the invention relates to a system and method for creating a block-based backup image that includes only a subset of the files of a file system volume.
2. Description of the Related Art
Computer systems typically use data organized in a file system volume in the form of files, e.g., where the files are stored on a disk drive or other storage device. Backup software is often used to backup the volume in order to protect the data against hardware failure, accidental deletion, or data corruption. The backup software may use different types of backup techniques. According to one general type of backup technique, the backup software may operate at the file level to backup the volume by individually backing up each file in the volume on a file-by-file basis. If the files in the volume are backed up on a file-by-file basis then the metadata in the original volume is typically not backed up. For example, only the file data may be backed up, not the metadata used by the file system to manage the files.
According to another general type of backup technique, the backup software may operate at the block (e.g., sector) level by creating a block-based backup image of the volume. When creating a block-based backup image, the backup software typically traverses the disk drive and copies the entire volume into the backup image on a sector-by-sector basis. The resulting backup image includes both the data for the files in the volume and the metadata used by the file system to manage the files. The backup image can be used to completely restore the volume at a subsequent time such that the file data and metadata in the restored volume are arranged on the disk identically as they were in the original volume.
Some backup software is operable to create different types of block-based backup images, such as full backup images (also referred to as base backup images) and incremental backup images. A full backup image is independent of other backup images and includes all the data of the volume. Thus, a full backup is a complete representation of the volume as it exists at the time the full backup image is created. An incremental backup image includes only the data blocks that have changed (as well as blocks for associated file system metadata structures) since a previous backup image was created. Thus, the incremental backup image is based on the previous backup image, which may be either a full backup image or another incremental backup image.
Block-based backup images are typically used to backup all of the files in the volume. For example, a full backup image typically includes all of the data blocks for all of the files, and an incremental backup image typically includes all the changed data blocks for all of the files that have changed since the previous backup image was created.